file chooser: Set default widget in create folder popover
authorMatthias Clasen <mclasen@redhat.com>
Fri, 17 Apr 2015 04:14:28 +0000 (00:14 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 3 May 2015 00:34:28 +0000 (20:34 -0400)
This is using the new default widget functionality for
popovers to make Enter in the entry activate the Create
button.

https://bugzilla.gnome.org/show_bug.cgi?id=747664

gtk/gtkfilechooserwidget.c
gtk/gtkplacessidebar.c
gtk/ui/gtkfilechooserwidget.ui

index b90f3a54e5638fd4bba426cfda637ca896720903..eaaaf9b29b631988ba125e008e68b364fac11a91 100644 (file)
@@ -82,6 +82,7 @@
 #include "gtkmain.h"
 #include "gtkscrollable.h"
 #include "gtkadjustment.h"
+#include "gtkpopover.h"
 
 #include <cairo-gobject.h>
 #include <errno.h>
@@ -7588,6 +7589,8 @@ post_process_ui (GtkFileChooserWidget *impl)
    * that priv->icon_size be already setup.
    */
   set_icon_cell_renderer_fixed_size (impl);
+
+  gtk_popover_set_default_widget (GTK_POPOVER (impl->priv->new_folder_popover), impl->priv->new_folder_create_button);
 }
 
 static void
index 01a5c39ad142857b412686097bd399ae49ca9036..a5bc74b1b73adaca0e3d8bacd692a0c25eade4e6 100644 (file)
@@ -2650,6 +2650,7 @@ create_rename_popover (GtkPlacesSidebar *sidebar)
                 "column-spacing", 6,
                 NULL);
   entry = gtk_entry_new ();
+  gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
   g_signal_connect (entry, "changed", G_CALLBACK (rename_entry_changed), sidebar);
   str = g_strdup_printf ("<b>%s</b>", _("Name"));
   label = gtk_label_new (str);
@@ -2658,6 +2659,7 @@ create_rename_popover (GtkPlacesSidebar *sidebar)
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry);
   g_free (str);
   button = gtk_button_new_with_mnemonic (_("_Rename"));
+  gtk_widget_set_can_default (button, TRUE);
   gtk_style_context_add_class (gtk_widget_get_style_context (button), "suggested-action");
   g_signal_connect (button, "clicked", G_CALLBACK (do_rename), sidebar);
   error = gtk_label_new ("");
@@ -2667,6 +2669,7 @@ create_rename_popover (GtkPlacesSidebar *sidebar)
   gtk_grid_attach (GTK_GRID (grid), button,1, 1, 1, 1);
   gtk_grid_attach (GTK_GRID (grid), error, 0, 2, 2, 1);
   gtk_widget_show_all (grid);
+  gtk_popover_set_default_widget (GTK_POPOVER (popover), button);
 
   sidebar->rename_popover = popover;
   sidebar->rename_entry = entry;
index e935d07cff735dc38737f9fd3c67d60685fd963f..cdecc73ad61512ac19d63666fcc653e1401682fe 100644 (file)
           <object class="GtkEntry" id="new_folder_name_entry">
             <property name="visible">True</property>
             <property name="width-chars">25</property>
+            <property name="activates_default">True</property>
             <signal name="changed" handler="new_folder_name_changed"/>
           </object>
           <packing>
             <property name="sensitive">False</property>
             <property name="label" translatable="yes">_Create</property>
             <property name="use_underline">True</property>
+            <property name="can_default">True</property>
             <signal name="clicked" handler="new_folder_create_clicked"/>
             <style>
               <class name="suggested-action"/>